<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Hello World</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <script type="text/javascript" src="../assets/js/vue.js"></script>
</head>

<body>
    <h1>event 事件</h1>
    <p>
        实例事件就是在构造器外部写一个调用构造器内部的方法<br/>
        这样写的好处是可以通过这种写法在构造器外部调用构造器内部的数据。
    </p>
    <ul>
        <li>$on 绑带事件</li>
        <li>
            $once 执行一次的事件:
        </li>
        <li>

        </li>
    </ul>
    <a href="../index.html">返回</a>
    
    <hr/>
    <div id="app">
        {{num}}
        <button @click="add">加1</button>
       
    </div>

    <p>
        <button onclick="reduce()">减1</button>
        <button onclick="stopreduce()">关闭减1事件</button>
        <button onclick="reduce1()">减1 只减一次</button>
    </p>
    <script>
        var app = new Vue({
            el: "#app",
            data: {
                num:10,
            },
            methods:{
                add:function(){
                    this.num++;
                }
            }
        });
        app.$on('reduce',function(){
            console.log('执行');
            this.num--;
        });
        //once 只执行一次
        app.$once('reduceonce',function(){
            console.log("reduceonce");
            this.num--;
        })


        function reduce(){
            app.$emit('reduce');
        }
        //执行一次
        function reduce1(){
            console.log("执行一次的js脚本被调用");
            app.$emit('reduceonce');
        }
        
        //关闭事件
        function stopreduce(){
            app.$off('reduce');
        }

    </script>
</body>

</html>